package pritace

import (
	"container/list"
	"fmt"
)

func testMain2() {

	cerateList()
	// testList()
}

func cerateList() {
	//第一种声明方式
	var list1 list.List
	list1.PushBack("first")
	list1.PushBack(12)
	//第二中声明方式
	list2 := list.New()
	list2.PushBack("second")
	list2.PushBack(16)
	for i := list1.Front(); i != nil; i = i.Next() {
		fmt.Println(i.Value)
	}
}

func testList() {
	l := list.New()
	//尾部添加
	l.PushBack("canon")
	//头部添加
	l.PushFront(67)
	element := l.PushBack("first")
	// fmt.Println(element.Value) //first

	// 在fist之后添加high
	l.InsertAfter("high", element)

	// 在fist之前添加noon
	l.InsertBefore("noon", element)

	for i := l.Front(); i != nil; i = i.Next() {
		fmt.Println(i.Value)
	}

	l.Remove(element)
	for i := l.Front(); i != nil; i = i.Next() {
		fmt.Println(i.Value)
	}

}
